home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3n / xdr_simple.z / xdr_simple
Encoding:
Text File  |  2002-10-03  |  22.7 KB  |  265 lines

  1.  
  2.  
  3.  
  4. xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))                                                  xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _xxxx_dddd_rrrr______ssss_iiii_mmmm_pppp_llll_eeee: _xxxx_dddd_rrrr______bbbb_oooo_oooo_llll, _xxxx_dddd_rrrr______cccc_hhhh_aaaa_rrrr, _xxxx_dddd_rrrr______dddd_oooo_uuuu_bbbb_llll_eeee, _xxxx_dddd_rrrr______eeee_nnnn_uuuu_mmmm, _xxxx_dddd_rrrr______ffff_llll_oooo_aaaa_tttt,
  10.      _xxxx_dddd_rrrr______ffff_rrrr_eeee_eeee, _xxxx_dddd_rrrr______hhhh_yyyy_pppp_eeee_rrrr, _xxxx_dddd_rrrr______iiii_nnnn_tttt_3333_2222, _xxxx_dddd_rrrr______iiii_nnnn_tttt_6666_4444, _xxxx_dddd_rrrr______iiii_nnnn_tttt, _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg,
  11.      _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg, _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt, _xxxx_dddd_rrrr______ssss_hhhh_oooo_rrrr_tttt, _xxxx_dddd_rrrr______tttt_iiii_mmmm_eeee______tttt, _xxxx_dddd_rrrr______uuuu______cccc_hhhh_aaaa_rrrr,
  12.      _xxxx_dddd_rrrr______uuuu______hhhh_yyyy_pppp_eeee_rrrr, _xxxx_dddd_rrrr______uuuu______iiii_nnnn_tttt, _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg, _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg, _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt,
  13.      _xxxx_dddd_rrrr______uuuu______ssss_hhhh_oooo_rrrr_tttt, _xxxx_dddd_rrrr______uuuu_iiii_nnnn_tttt_3333_2222, _xxxx_dddd_rrrr______uuuu_iiii_nnnn_tttt_6666_4444, _xxxx_dddd_rrrr______vvvv_oooo_iiii_dddd - library routines for
  14.      external data representation
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      XDR library routines allow C programmers to describe simple data
  18.      structures in a machine-independent fashion.  Protocols such as remote
  19.      procedure calls (RPC) use these routines to describe the format of the
  20.      data.
  21.  
  22.      These routines require the creation of XDR streams [see _xxxx_dddd_rrrr______cccc_rrrr_eeee_aaaa_tttt_eeee(3N)].
  23.  
  24.    RRRRoooouuuuttttiiiinnnneeeessss
  25.      See _rrrr_pppp_cccc(3N) for the definition of the _XXXX_DDDD_RRRR data structure.
  26.  
  27.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_rrrr_pppp_cccc_////_xxxx_dddd_rrrr_...._hhhh_>>>>
  28.  
  29.      _bbbb_oooo_oooo_llll______tttt
  30.      _xxxx_dddd_rrrr______bbbb_oooo_oooo_llll_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _bbbb_oooo_oooo_llll______tttt _****_bbbb_pppp_))))_;;;;
  31.  
  32.           _xxxx_dddd_rrrr______bbbb_oooo_oooo_llll translates between booleans (C integers) and their external
  33.           representations.  When encoding data, this filter produces values of
  34.           either _1111 or _0000.  This routine returns _1111 if it succeeds, _0000 otherwise.
  35.  
  36.      _bbbb_oooo_oooo_llll______tttt
  37.      _xxxx_dddd_rrrr______cccc_hhhh_aaaa_rrrr_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_cccc_pppp_))))_;;;;
  38.  
  39.           _xxxx_dddd_rrrr______cccc_hhhh_aaaa_rrrr translates between C characters and their external
  40.           representations.  This routine returns _1111 if it succeeds, _0000
  41.           otherwise.  Note:  encoded characters are not packed, and occupy 4
  42.           bytes each.  For arrays of characters, it is worthwhile to consider
  43.           _xxxx_dddd_rrrr______bbbb_yyyy_tttt_eeee_ssss, _xxxx_dddd_rrrr______oooo_pppp_aaaa_qqqq_uuuu_eeee or _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg [see _xxxx_dddd_rrrr______bbbb_yyyy_tttt_eeee_ssss, _xxxx_dddd_rrrr______oooo_pppp_aaaa_qqqq_uuuu_eeee and
  44.           _xxxx_dddd_rrrr______ssss_tttt_rrrr_iiii_nnnn_gggg in _xxxx_dddd_rrrr______cccc_oooo_mmmm_pppp_llll_eeee_xxxx(3N)].
  45.  
  46.      _bbbb_oooo_oooo_llll______tttt
  47.      _xxxx_dddd_rrrr______dddd_oooo_uuuu_bbbb_llll_eeee_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _dddd_oooo_uuuu_bbbb_llll_eeee _****_dddd_pppp_))))_;;;;
  48.  
  49.           _xxxx_dddd_rrrr______dddd_oooo_uuuu_bbbb_llll_eeee translates between C _dddd_oooo_uuuu_bbbb_llll_eeee precision numbers and their
  50.           external representations.  This routine returns _1111 if it succeeds, _0000
  51.           otherwise.
  52.  
  53.      _bbbb_oooo_oooo_llll______tttt
  54.      _xxxx_dddd_rrrr______eeee_nnnn_uuuu_mmmm_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _eeee_nnnn_uuuu_mmmm______tttt _****_eeee_pppp_))))_;;;;
  55.  
  56.           _xxxx_dddd_rrrr______eeee_nnnn_uuuu_mmmm translates between C _eeee_nnnn_uuuu_mmmms (actually integers) and their
  57.           external representations.  This routine returns _1111 if it succeeds, _0000
  58.           otherwise.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))                                                  xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))
  71.  
  72.  
  73.  
  74.      _bbbb_oooo_oooo_llll______tttt
  75.      _xxxx_dddd_rrrr______ffff_llll_oooo_aaaa_tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _ffff_llll_oooo_aaaa_tttt _****_ffff_pppp_))))_;;;;
  76.  
  77.           _xxxx_dddd_rrrr______ffff_llll_oooo_aaaa_tttt translates between C _ffff_llll_oooo_aaaa_tttts and their external
  78.           representations.  This routine returns _1111 if it succeeds, _0000
  79.           otherwise.
  80.  
  81.      _vvvv_oooo_iiii_dddd
  82.      _xxxx_dddd_rrrr______ffff_rrrr_eeee_eeee_((((_xxxx_dddd_rrrr_pppp_rrrr_oooo_cccc______tttt _pppp_rrrr_oooo_cccc_,,,, _cccc_hhhh_aaaa_rrrr _****_oooo_bbbb_jjjj_pppp_))))_;;;;
  83.  
  84.           Generic freeing routine.  The first argument is the XDR routine for
  85.           the object being freed.  The second argument is a pointer to the
  86.           object itself.  Note:  the pointer passed to this routine is not
  87.           freed, but what it points to is freed (recursively).
  88.  
  89.      _bbbb_oooo_oooo_llll______tttt
  90.      _xxxx_dddd_rrrr______iiii_nnnn_tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _iiii_nnnn_tttt _****_iiii_pppp_))))_;;;;
  91.      _bbbb_oooo_oooo_llll______tttt
  92.      _xxxx_dddd_rrrr______iiii_nnnn_tttt_3333_2222_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _iiii_nnnn_tttt _****_iiii_pppp_))))_;;;;
  93.  
  94.           _xxxx_dddd_rrrr______iiii_nnnn_tttt translates between C integers and their external
  95.           representations.  This routine returns _1111 if it succeeds, _0000
  96.           otherwise. _xxxx_dddd_rrrr______iiii_nnnn_tttt_3333_2222 is a synonym for _xxxx_dddd_rrrr______iiii_nnnn_tttt.
  97.  
  98.      _bbbb_oooo_oooo_llll______tttt
  99.      _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _llll_oooo_nnnn_gggg _****_llll_pppp_))))_;;;;
  100.  
  101.           _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg translates between C _llll_oooo_nnnn_gggg integers and their external
  102.           representations.  This routine returns _1111 if it succeeds, _0000
  103.           otherwise.
  104.  
  105.           Note: In the IRIX 64-bit ABI, this routine may be somewhat
  106.           misleading. The external representation of a _llll_oooo_nnnn_gggg integer is defined
  107.           by the XDR standard to be a 32 bit encoding, but in the IRIX 64-bit
  108.           ABI, a _llll_oooo_nnnn_gggg integer is 64 bits. Hence, in the IRIX 64-bit ABI, _llll_oooo_nnnn_gggg
  109.           integers are truncated by _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg, and _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg is only useful for
  110.           encoding/decoding values in the range of -2147483648 to 2147483647.
  111.  
  112.      _bbbb_oooo_oooo_llll______tttt
  113.      _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  114.      _bbbb_oooo_oooo_llll______tttt
  115.      _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  116.      _bbbb_oooo_oooo_llll______tttt
  117.      _xxxx_dddd_rrrr______iiii_nnnn_tttt_6666_4444_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  118.      _bbbb_oooo_oooo_llll______tttt
  119.      _xxxx_dddd_rrrr______hhhh_yyyy_pppp_eeee_rrrr_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  120.  
  121.           _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt translates between C _6666_4444_----_bbbb_iiii_tttt integers and their
  122.           external representations.  This routine returns _1111 if it succeeds, _0000
  123.           otherwise. _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg, _xxxx_dddd_rrrr______hhhh_yyyy_pppp_eeee_rrrr and _xxxx_dddd_rrrr______iiii_nnnn_tttt_6666_4444 are synonyms for
  124.           _xxxx_dddd_rrrr______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))                                                  xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))
  137.  
  138.  
  139.  
  140.      _bbbb_oooo_oooo_llll______tttt
  141.      _xxxx_dddd_rrrr______ssss_hhhh_oooo_rrrr_tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _ssss_hhhh_oooo_rrrr_tttt _****_ssss_pppp_))))_;;;;
  142.  
  143.           _xxxx_dddd_rrrr______ssss_hhhh_oooo_rrrr_tttt translates between C _ssss_hhhh_oooo_rrrr_tttt integers and their external
  144.           representations.  This routine returns _1111 if it succeeds, _0000
  145.           otherwise.
  146.  
  147.      _bbbb_oooo_oooo_llll______tttt
  148.      _xxxx_dddd_rrrr______tttt_iiii_mmmm_eeee______tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _tttt_iiii_mmmm_eeee______tttt _****_tttt_pppp_))))_;;;;
  149.  
  150.           _xxxx_dddd_rrrr______tttt_iiii_mmmm_eeee______tttt translates between local representation of _tttt_iiii_mmmm_eeee______tttt, which
  151.           on Irix is a 32bit integer, and its external representations. This
  152.           routine returns _1111 if it succeeds, _0000 otherwise.
  153.  
  154.      _bbbb_oooo_oooo_llll______tttt
  155.      _xxxx_dddd_rrrr______uuuu______cccc_hhhh_aaaa_rrrr_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _cccc_hhhh_aaaa_rrrr _****_uuuu_cccc_pppp_))))_;;;;
  156.  
  157.           _xxxx_dddd_rrrr______uuuu______cccc_hhhh_aaaa_rrrr translates between _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd C characters and their
  158.           external representations.  This routine returns _1111 if it succeeds, _0000
  159.           otherwise.
  160.  
  161.      _bbbb_oooo_oooo_llll______tttt
  162.      _xxxx_dddd_rrrr______uuuu______iiii_nnnn_tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt _****_iiii_pppp_))))_;;;;
  163.      _bbbb_oooo_oooo_llll______tttt
  164.      _xxxx_dddd_rrrr______uuuu_iiii_nnnn_tttt_3333_2222_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt _****_iiii_pppp_))))_;;;;
  165.  
  166.           _xxxx_dddd_rrrr______uuuu______iiii_nnnn_tttt translates between _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd C integers and their external
  167.           representations.  This routine returns _1111 if it succeeds, _0000
  168.           otherwise. _xxxx_dddd_rrrr______uuuu_iiii_nnnn_tttt_3333_2222 is a synonym for _xxxx_dddd_rrrr______uuuu______iiii_nnnn_tttt.
  169.  
  170.      _bbbb_oooo_oooo_llll______tttt
  171.      _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg _****_uuuu_llll_pppp_))))_;;;;
  172.  
  173.           _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg translates between C _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg integers and their
  174.           external representations.  This routine returns _1111 if it succeeds, _0000
  175.           otherwise.
  176.  
  177.           Note: In the IRIX 64-bit ABI, this routine may be somewhat
  178.           misleading. The external representation of an _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg integer
  179.           is defined by the XDR standard to be a 32 bit encoding, but in the
  180.           IRIX 64-bit ABI, an _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg integer is 64 bits. Hence, in the
  181.           IRIX 64-bit ABI, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg integers are truncated by _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg,
  182.           and _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg is only useful for encoding/decoding values in the
  183.           range of 0 to 4294967295.
  184.  
  185.      _bbbb_oooo_oooo_llll______tttt
  186.      _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________uuuu_iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  187.      _bbbb_oooo_oooo_llll______tttt
  188.      _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________uuuu_iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  189.      _bbbb_oooo_oooo_llll______tttt
  190.      _xxxx_dddd_rrrr______uuuu_iiii_nnnn_tttt_6666_4444_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________uuuu_iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  191.      _bbbb_oooo_oooo_llll______tttt
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))                                                  xxxxddddrrrr____ssssiiiimmmmpppplllleeee((((3333NNNN))))
  203.  
  204.  
  205.  
  206.      _xxxx_dddd_rrrr______uuuu______hhhh_yyyy_pppp_eeee_rrrr_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, ___________uuuu_iiii_nnnn_tttt_6666_4444______tttt _****_llll_pppp_))))_;;;;
  207.  
  208.           _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt translates between C _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _6666_4444_----_bbbb_iiii_tttt integers and
  209.           their external representations.  This routine returns _1111 if it
  210.           succeeds, _0000 otherwise. _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg, _xxxx_dddd_rrrr______uuuu______hhhh_yyyy_pppp_eeee_rrrr and _xxxx_dddd_rrrr______uuuu_iiii_nnnn_tttt_6666_4444
  211.           are synonyms for _xxxx_dddd_rrrr______uuuu______llll_oooo_nnnn_gggg_llll_oooo_nnnn_gggg______tttt.
  212.  
  213.      _bbbb_oooo_oooo_llll______tttt
  214.      _xxxx_dddd_rrrr______uuuu______ssss_hhhh_oooo_rrrr_tttt_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt _****_uuuu_ssss_pppp_))))_;;;;
  215.  
  216.           _xxxx_dddd_rrrr______uuuu______ssss_hhhh_oooo_rrrr_tttt translates between C _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt integers and their
  217.           external representations.  This routine returns _1111 if it succeeds, _0000
  218.           otherwise.
  219.  
  220.      _bbbb_oooo_oooo_llll______tttt
  221.      _xxxx_dddd_rrrr______vvvv_oooo_iiii_dddd_((((_XXXX_DDDD_RRRR _****_xxxx_dddd_rrrr_ssss_,,,, _vvvv_oooo_iiii_dddd _****_vvvv_pppp_))))_;;;;
  222.  
  223.           This routine always returns _1111.  It may be passed to RPC routines
  224.           that require a function parameter, where nothing is to be done.
  225.  
  226. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  227.      _rrrr_pppp_cccc(3N), _xxxx_dddd_rrrr(3N), _xxxx_dddd_rrrr______aaaa_dddd_mmmm_iiii_nnnn(3N), _xxxx_dddd_rrrr______cccc_oooo_mmmm_pppp_llll_eeee_xxxx(3N), _xxxx_dddd_rrrr______cccc_rrrr_eeee_aaaa_tttt_eeee(3N)
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.